#ifndef _DM_IPC_H_
#define _DM_IPC_H_

#include "iotx_dm_internal.h"

typedef struct {
	iotx_dm_event_types_t type;
	char *data;
}dm_ipc_msg_t;

typedef struct {
	void *data;
	struct list_head linked_list;
}dm_ipc_msg_node_t;

typedef struct {
	int max_size;
	int size;
	struct list_head message_list;
}dm_ipc_msg_list_t;

typedef struct {
	void *mutex;
	dm_ipc_msg_list_t msg_list;
}dm_ipc_t;

int dm_ipc_init(int max_size);
void dm_ipc_deinit(void);
int dm_ipc_msg_insert(void *data);
int dm_ipc_msg_next(void **data);

#endif
